/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ufc.quixada.adrs.model;

import br.ufc.quixada.adrs.util.UtilAdrs;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 *
 * @author ismaily
 */
public class RelatorioResult2 {

    //dados detalhados do produtor
    private Produtor prudutor;
    private List<Date> datas;
    private List<String> filtros;
    private List<Integer> dados;
    //dados para compor o relatorio geral
    private List<String> filtrosMarcados;
    private List<Integer> subTotal;

    public RelatorioResult2() {
        //inicializa dados detalhado do produtor
        this.filtros = new ArrayList<String>();
        this.dados = new ArrayList<Integer>();
        this.datas = new ArrayList<Date>();

        //inicializa dados para compor relatorio geral      
        this.filtrosMarcados = new ArrayList<String>();
        this.subTotal = new ArrayList<Integer>();

    }

    public List<Integer> getDados() {
        return dados;
    }

    public void setDados(List<Integer> dados) {
        this.dados = dados;
    }

    public List<Date> getDatas() {
        return datas;
    }

    public String getFormatedData(int posicao) {
        return UtilAdrs.treatToMonthYearString(datas.get(posicao));
    }

    public void setDatas(List<Date> datas) {
        this.datas = datas;
    }

    public List<String> getFiltros() {
        return filtros;
    }

    public void setFiltros(List<String> filtros) {
        this.filtros = filtros;
    }

    public List<String> getFiltrosMarcados() {
        return filtrosMarcados;
    }

    public void setFiltrosMarcados(List<String> filtrosMarcados) {
        this.filtrosMarcados = filtrosMarcados;
    }

    public Produtor getPrudutor() {
        return prudutor;
    }

    public void setPrudutor(Produtor prudutor) {
        this.prudutor = prudutor;
    }

    public List<Integer> getSubTotal() {
        return subTotal;
    }

    public int getSubtotal(int i) {
        if (subTotal!=null && subTotal.size()>0) {
            return subTotal.get(i);
        }
        return 0;
    }

    public void setSubTotal(List<Integer> subTotal) {
        this.subTotal = subTotal;
    }

    public void setFiltroDado(String filtro, int dado, Date data) {
        int posicao = filtros.size();
        this.filtros.add(posicao, filtro);
        this.dados.add(posicao, dado);
        this.datas.add(posicao, data);
    }

    public void setFiltroDadoSubTotal(String filtro, int dado) {
        int posicao = filtrosMarcados.size();
        this.filtrosMarcados.add(posicao, filtro);
        this.subTotal.add(posicao, dado);
    }

    /*ordena por data*/
    public void ordenaFiltroByData(Date dat) {
        int posicao = filtros.size();
        for (int i = 0; i < posicao; i++) {

            for (int j = posicao - 1; j > i; j--) {
                if (filtros.get(j).compareTo(filtros.get(i)) < 0 && datas.get(i).equals(datas.get(j)) && dat.equals(datas.get(i))) {
                    int aux1 = dados.get(i);
                    dados.set(i, dados.get(j));
                    dados.set(j, aux1);

                    String aux2 = filtros.get(i);
                    filtros.set(i, filtros.get(j));
                    filtros.set(j, aux2);
                }
            }
        }
    }

    /*Ordena por filtro*/
    public void ordenarValoresFiltros() {

        int posicao = filtros.size();
        for (int i = 0; i < posicao; i++) {
            for (int j = posicao - 1; j > i; j--) {

                if (datas.get(j).before(datas.get(i))) {
                    Date aux = datas.get(i);
                    datas.set(i, datas.get(j));
                    datas.set(j, aux);


                    int aux1 = dados.get(i);
                    dados.set(i, dados.get(j));
                    dados.set(j, aux1);

                    String aux2 = filtros.get(i);
                    filtros.set(i, filtros.get(j));
                    filtros.set(j, aux2);

                }
            }
        }
    }
}
